package project;

import interfacesFerrovia.DefsGlobais.TipoAtributo;

import java.util.Set;

import malhaFerroviaria.Ferrovia;

public class Composicao {
	
	private String id;
	private int comprimento;
	private float velocidade_max;
	private float aceleracao_max;
	private float frenagem_max;
	private String[] itinerario;
	private int partida;
	private String id_tr_ch_atual;
	private float posicao_atual;
	private float vel_atual;
	private boolean sentido_atual;
	private float acel_atual;
	private float fre_atual;
	private boolean em_movimento;
	
	public Composicao(String id, Set<TipoAtributo> s, Ferrovia f) {
		for(TipoAtributo attr : s)
		{
			Object valor = f.consultaAtributo(id, attr);
			switch (attr.name()) {
				case "ID":
					this.id = (String)valor;
					break;
				case "FRENAGEM_MAX":
					this.frenagem_max = (float)valor;
					break;
				case "ACEL_ATUAL":
					this.acel_atual = (float)valor;
					break;
				case "ACELERACAO_MAX":
					this.aceleracao_max = (float)valor;
					break;
				case "POSICAO_ATUAL":
					this.posicao_atual = (float)valor;
					break;
				case "COMPRIMENTO":
					this.comprimento = (int)valor;
					break;
				case "ID_TR_CH_ATUAL":
					this.id_tr_ch_atual = (String)valor;
					break;
				case "VEL_ATUAL":
					this.vel_atual = (float)valor;
					break;
				case "ITINERARIO":
					this.itinerario = (String [])valor;
					break;
				case "FREN_ATUAL":
					this.fre_atual = (float)valor;
					break;
				case "VELOCIDADE_MAX":
					this.velocidade_max = (float)valor;
					break;
				case "SENTIDO_ATUAL":
					this.sentido_atual = (boolean)valor;
					break;
				default:
					break;
			}
		}
	}	
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public int getComprimento() {
		return comprimento;
	}
	public void setComprimento(int comprimento) {
		this.comprimento = comprimento;
	}
	public float getVelocidade_max() {
		return velocidade_max;
	}
	public void setVelocidade_max(float velocidade_max) {
		this.velocidade_max = velocidade_max;
	}
	public float getAceleracao_max() {
		return aceleracao_max;
	}
	public void setAceleracao_max(float aceleracao_max) {
		this.aceleracao_max = aceleracao_max;
	}
	public float getFrenagem_max() {
		return frenagem_max;
	}
	public void setFrenagem_max(float frenagem_max) {
		this.frenagem_max = frenagem_max;
	}
	public String[] getItinerario() {
		return itinerario;
	}
	public void setItinerario(String[] itinerario) {
		this.itinerario = itinerario;
	}
	public int getPartida() {
		return partida;
	}
	public void setPartida(int partida) {
		this.partida = partida;
	}
	public String getId_tr_ch_atual() {
		return id_tr_ch_atual;
	}
	public void setId_tr_ch_atual(String id_tr_ch_atual) {
		this.id_tr_ch_atual = id_tr_ch_atual;
	}
	public float getPosicao_atual() {
		return posicao_atual;
	}
	public void setPosicao_atual(float posicao_atual) {
		this.posicao_atual = posicao_atual;
	}
	public float getVel_atual() {
		return vel_atual;
	}
	public void setVel_atual(float vel_atual) {
		this.vel_atual = vel_atual;
	}
	public boolean isSentido_atual() {
		return sentido_atual;
	}
	public void setSentido_atual(boolean sentido_atual) {
		this.sentido_atual = sentido_atual;
	}
	public float getAcel_atual() {
		return acel_atual;
	}
	public void setAcel_atual(float acel_atual) {
		this.acel_atual = acel_atual;
	}
	public float getFre_atual() {
		return fre_atual;
	}
	public void setFre_atual(float fre_atual) {
		this.fre_atual = fre_atual;
	}
	public boolean isEm_movimento() {
		return em_movimento;
	}
	public void setEm_movimento(boolean em_movimento) {
		this.em_movimento = em_movimento;
	}
	
 	
}
